﻿Imports Entities
Imports Business
Imports DataAccess
Public Class MantencionCalles
    Private _FormVenta As RealizarVenta = Application.OpenForms.OfType(Of RealizarVenta).SingleOrDefault
    Private VillaId As Decimal
    Private _Calle As New CALLES

    Sub New()

        ' Llamada necesaria para el diseñador.
        InitializeComponent()

        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().

    End Sub

    Sub New(ByVal zVllaId As Integer)

        ' Llamada necesaria para el diseñador.
        InitializeComponent()
        VillaId = zVllaId
        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().
        TituloCombo()
    End Sub

    Private Sub MantencionCalles_Activated(sender As Object, e As EventArgs) Handles Me.Activated
        If Not IsNothing(_FormVenta) Then
            bLimpiar.Visible = False
            bEliminar.Visible = False
            'Me.Height = 200
        End If
        TituloCombo()
        Titulo()
        If VillaId > 0 Then cVillas.SelectedValue = VillaId
    End Sub

   

    Private Sub TituloCombo()
        With cVillas
            .DataSource = VillaBL.List
            .ValueMember = "VILLA"
            .DisplayMember = "NOMBRE"
        End With
    End Sub

    Private Sub Titulo()
        Dim lista = CalleBL.ListP
        If IsNothing(lista) Then Exit Sub
        gGrillaMantencion.DataSource = lista

        gGrillaMantencion.Font = New Drawing.Font("Tahoma", Util.GridFont, FontStyle.Regular, GraphicsUnit.Point)
        gGrillaMantencion.Columns("CalleId").Visible = False

        gGrillaMantencion.Columns("NOMBRE").HeaderText = "Nombre Calle"
        ' gGrillaMantencion.Columns("NOMBRE").Width = 200

        gGrillaMantencion.Columns("NOMBRE").DisplayIndex = 1
    End Sub

    Private Sub Limpiar()
        xNombre.Clear()
        cVillas.SelectedIndex = -1
        _Calle = New CALLES
        bGuardar.Text = "Guardar"
        bEliminar.Enabled = False
    End Sub

    Private Sub cargarCalle()
        If IsNothing(_Calle) Then
            Limpiar()
        Else
            With _Calle
                xNombre.Text = .NOMBRE
                cVillas.SelectedValue = _Calle.VILLA
            End With
            bEliminar.Enabled = True
            bGuardar.Text = "Modificar"
        End If
    End Sub

    Private Sub bCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bCancelar.Click
        Dispose()
    End Sub

    Private Sub bGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bGuardar.Click
        If xNombre.Text = "" Then
            Util.Mensaje("Debe Ingresar Nombre de la Calle")
            xNombre.Focus()
        ElseIf cVillas.Text = "" Then
            Util.Mensaje("Debe Seleccionar la Villa")
            cVillas.Focus()
        Else
            Dim calle As New CALLES
            With calle
                If Not IsNothing(_Calle) AndAlso _Calle.CALLE > 0 Then .CALLE = _Calle.CALLE
                .VILLA = cVillas.SelectedValue
                .NOMBRE = xNombre.Text.Trim.ToUpper
                .ACTIVO = True
            End With

            If CalleBL.Save(calle) Then
                Util.Mensaje("Calle Ingresada Correctamente")
                If Not IsNothing(_FormVenta) Then
                    _FormVenta.UpdateCallesList(cVillas.SelectedValue)
                    Me.Dispose()
                End If
                Limpiar()
                Titulo()
            Else
                Util.MensajeError("No se Pudo Ingresar la Calle")
            End If

        End If

    End Sub

    Private Sub gGrillaMantencion_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles gGrillaMantencion.DoubleClick
        If gGrillaMantencion.Rows.Count > 0 Then
            If gGrillaMantencion.Rows.IndexOf(gGrillaMantencion.CurrentRow) >= 0 Then
                _Calle = CalleBL.SearchById(gGrillaMantencion.Item("CalleId", gGrillaMantencion.Rows.IndexOf(gGrillaMantencion.CurrentRow)).Value)
                cargarCalle()
            End If
        End If
    End Sub

    Private Sub bLimpiar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bLimpiar.Click
        Limpiar()
    End Sub

    Private Sub xNombre_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles xNombre.KeyPress
        If e.KeyChar = ChrW(Keys.Enter) Then
            Util.Siguiente()
        End If
    End Sub

    Private Sub cVillas_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cVillas.KeyPress
        If e.KeyChar = ChrW(Keys.Enter) Then
            Util.Siguiente()
        End If
    End Sub
End Class